<?php
/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author Eder
 */
class OpcionDAO {
    
    var $className;
    
    public function __construct() {
        $this->className = 'OpcionDAO';
        LogUtil::info("class $this->className", "__construct");
    }

    public function __destruct() {
        LogUtil::info("class $this->className", "__destruct");
    }
    
    public function obtenerOpciones() {
        LogUtil::info("class $this->className", "obtenerOpciones");
        global $wpdb;  
        $tempOpciones = $wpdb->get_results('SELECT   
                                                id,
                                                opcion,
                                                valor,
                                                estado
                                            FROM 
                                                    wp_sisres_opcion'
                                          , ARRAY_A);

        $opciones = array();
        $i = 0;
        if (!empty($tempOpciones)) {
            foreach ($tempOpciones as $tempOpcion) {
                $opciones[$i++] = $this->cargarOpcion($tempOpcion);
            }
        }
        return $opciones;
    }
    
     public function obtenerOpcionesActivos() {
        LogUtil::info("class $this->className", "obtenerOpcionesActivos");
        global $wpdb;  
        $tempOpciones = $wpdb->get_results('SELECT   
                                                id,
                                                opcion,
                                                valor,
                                                estado
                                            FROM 
                                                    wp_sisres_opcion 
                                            WHERE
                                                    estado = 1'
                                          , ARRAY_A);

        $opciones = array();
        $i = 0;
        if (!empty($tempOpciones)) {
            foreach ($tempOpciones as $tempOpcion) {
                $opciones[$i++] = $this->cargarOpcion($tempOpcion);
            }
        }
        return $opciones;
    }
    
    public function obtenerOpcionPorId($id) {
        LogUtil::info("class $this->className", "obtenerOpcionPorId");
        global $wpdb;  
        $tempOpcion = $wpdb->get_row('SELECT   
                                                id,
                                                opcion,
                                                valor,
                                                estado
                                            FROM 
                                                    wp_sisres_opcion 
                                            WHERE
                                                id = '.$id
                                          , ARRAY_A);
        $opcion = $this->cargarOpcion($tempOpcion);
        return $opcion;
    }
    
    public function guardarOpcion($opcion){
        LogUtil::info("class $this->className", "guardarOpcion");
        global $wpdb; 
        $data_array = array( 
            'opcion' => $opcion->opcion, 
            'valor' => $opcion->valor,  
            'estado' => $opcion->estado
                );
        $wpdb->insert('wp_sisres_opcion',$data_array);
        return $wpdb->insert_id;
    }
    
    public function actualizarOpcion($opcion){
        LogUtil::info("class $this->className", "actualizarOpcion");
        global $wpdb; 
        $wpdb->query('UPDATE 
                            wp_sisres_opcion 
                        SET 
                            valor = "'. $opcion->valor.'",   
                            estado = "'. $opcion->estado.'"
                        WHERE 
                            id = '. $opcion->id);
        return true;
    }    
    
    private function cargarOpcion($tempOpcion){  
        LogUtil::info("class $this->className", "cargarOpcion");
        $opcion = new Opcion();
        $opcion->id = $tempOpcion['id'];   
        $opcion->opcion = $tempOpcion['opcion'];   
        $opcion->valor = $tempOpcion['valor'];  
        $opcion->estado = $tempOpcion['estado'];  
        return $opcion;
    }

}
?>
